The present invention relates to thread execution synchronization in a software execution environment capable of parallel thread execution.
A thread is a sequence of instructions executed by a computer processor (or its equivalent) independently in parallel to or intermixed with other similar threads within the system.
Serializing synchronization is a mechanism allowing gaining logical ownership of a synchronization token by at most one thread at a time and suspending execution of any additional threads competing for the same token until the present ownership is released by the owning thread.
Event notification type synchronization is a synchronization mechanism allowing a thread or threads to suspend execution waiting on a synchronization token for an event announcement by any other thread. Whenever the event is announced (signaled), one of or all the suspended threads resume their execution.
Event notification type synchronization implementations typically lack some benefits available with serializing synchronization.